# Packages
library(mdsr)
library(readr)
library(dplyr)
library(tidyr)
library(tidytext)
library(wordcloud)
library(readtext)
# Reading in Terrorism 
terrorism <- read.table(unz("globalterrorismdb_0718dist.csv.zip", "globalterrorismdb_0718dist.csv"), nrows=181692, header=T, fill =T, quote="\"", sep=",")
# Reading in Econ Data
econData <- read.csv("WEO_Data.csv")
year_terrorism_deaths <-
  terrorism %>%
  group_by(country_txt) %>%
  summarise(attacks = n(), deaths = sum(na.omit(nkill))) %>%
  arrange(desc(deaths))
year_terrorism_deaths
# terrorism_words <-
#   terrorism %>%
#   select(attacktype1_txt, weaptype1_txt, weapsubtype1_txt, weapdetail)
# 
# write.table(terrorism_words, file = "terrorism_words.txt", quote = FALSE,
#             sep = " ", row.names = FALSE, col.names = FALSE)
# 
# terrorism_txt <- 
#   readtext(file = "terrorism_words.txt") %>%
#   as.tibble()
# 
# head(terrorism_txt)
wordcloud("terrorism_words.txt", max.words = 10)
transformation drops documentstransformation drops documents

terrorism %>%
  sample(5000) %>%
  ggplot(aes(x = longitude, y = latitude)) +
  geom_point()

terrorism %>%
  filter(country_txt == "United States") %>%
  filter(longitude < 0) %>%
  filter(nkillus > 0) %>%
  ggplot(aes(x = longitude, y = latitude)) +
  geom_point(aes(color = nkill))

# Using apply to change values in data frame to numbers
econNumeric <- apply(X = econData[,5:30], FUN = as.numeric, MARGIN = 2)
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion
econDataNew <-
  econData %>%
  select(c(1:4))
  
econData2 <-
  as.data.frame(econNumeric)
econDataNew <-
  econDataNew %>%
  cbind(econData2)
econDataNew
# Using gather function to make data frame tidy
econDataTidy <-
  econDataNew %>%
  gather(key = "Year", value = "Value", 5:30)
econDataTidy
# Creating average of values over the 26 years found in the data frame
econAverages <-
  econDataTidy %>%
  group_by(Country, Subject.Descriptor, Units) %>%
  summarise(average = mean(na.omit(Value)))
econAverages
# User-defined function to create data frame based off subject indicator
create_deaths_table <- function(x, y){
  econAverages %>%
    filter(Subject.Descriptor == x, Units == y) %>%
    rename("country_txt" = "Country") %>%
    left_join(year_terrorism_deaths, by = "country_txt") %>%
    rename("Country" = "country_txt")
}
# Data frame with population and attacks/deaths
PopDeaths <- create_deaths_table("Population", "Persons")
Column `country_txt` joining factors with different levels, coercing to character vector
PopDeaths
# Data frame with GDP
GDPDeaths <- create_deaths_table("Gross domestic product per capita, constant prices",
                                 "Purchasing power parity; 2011 international dollar")
Column `country_txt` joining factors with different levels, coercing to character vector
GDPDeaths
# Data Frame with inflation
InflationDeaths <- create_deaths_table("Inflation, average consumer prices",
                                       "Index")
Column `country_txt` joining factors with different levels, coercing to character vector
InflationDeaths
# Data frame involving total country spending
SpendingDeaths <- create_deaths_table("General government total expenditure",
                                      "Percent of GDP")
Column `country_txt` joining factors with different levels, coercing to character vector
SpendingDeaths
# Data frame involving percent change in imported goods and services
ImportDeaths <- create_deaths_table("Volume of imports of goods and services",
                                    "Percent change")
Column `country_txt` joining factors with different levels, coercing to character vector
ImportDeaths
YearEconData <-
  econDataTidy %>%
  filter(Subject.Descriptor == "Population") 
year_terrorism_deaths <-
  terrorism %>%
  group_by(iyear) %>%
  filter(iyear >= 1999) %>%
  summarise(attacks = n(), deaths = sum(na.omit(nkill))) %>%
  rename("Year" = "iyear") %>%
  arrange(Year)
YearEconDataClean <-
  YearEconData %>%
  mutate(Year = as.numeric(gsub("X", "", Year))) %>%
  group_by(Year) %>%
  filter(Year <= 2017) %>%
  summarise(worldPop = sum(na.omit(Value)))
ggplot(data = year_terrorism_deaths, aes(x = Year, y = attacks)) +
  geom_point(color = "red", shape = 15) + geom_line(color = "red") +
  geom_point(aes(x = Year, y = worldPop), color = "blue", data = YearEconDataClean) +
  geom_line(aes(x = Year, y = worldPop), color = "blue", data = YearEconDataClean)

ytd2 <- year_terrorism_deaths[-c(1)]
ytd2 <-
  ytd2 %>%
  select(attacks, deaths) %>%
  arrange(desc(attacks)) %>%
  head(25)
ytd_top_25 <-
  year_terrorism_deaths %>%
  arrange(desc(attacks)) %>%
  head(25)
ytd_std <-
  scale(ytd2) %>%
  as.data.frame()
ytd_dist <- dist(ytd_std)
ytd_dendo <-
  ytd_dist %>%
  hclust(method = "complete")
labels <- ytd_top_25$country_txt
ytd_dendo %>%
  plot(cex = 0.9, labels = labels, lwd = 2,
       main = "NCI60 Dendogram with Complete Linkage")

LS0tCnRpdGxlOiAiU1RBVCAzODAgRmluYWwgUHJvamVjdCIKYXV0aG9yOiAiR3JlZyBXZXN0ZmFsbCBhbmQgVEogU2NoYWVmZmVyIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpgYGB7cn0KIyBQYWNrYWdlcwpsaWJyYXJ5KG1kc3IpCmxpYnJhcnkocmVhZHIpCmxpYnJhcnkoZHBseXIpCmxpYnJhcnkodGlkeXIpCmxpYnJhcnkodGlkeXRleHQpCmxpYnJhcnkod29yZGNsb3VkKQpsaWJyYXJ5KHJlYWR0ZXh0KQoKYGBgCgoKYGBge3J9CiMgUmVhZGluZyBpbiBUZXJyb3Jpc20gCnRlcnJvcmlzbSA8LSByZWFkLnRhYmxlKHVueigiZ2xvYmFsdGVycm9yaXNtZGJfMDcxOGRpc3QuY3N2LnppcCIsICJnbG9iYWx0ZXJyb3Jpc21kYl8wNzE4ZGlzdC5jc3YiKSwgbnJvd3M9MTgxNjkyLCBoZWFkZXI9VCwgZmlsbCA9VCwgcXVvdGU9IlwiIiwgc2VwPSIsIikKIyBSZWFkaW5nIGluIEVjb24gRGF0YQplY29uRGF0YSA8LSByZWFkLmNzdigiV0VPX0RhdGEuY3N2IikKYGBgCgoKYGBge3J9CnllYXJfdGVycm9yaXNtX2RlYXRocyA8LQogIHRlcnJvcmlzbSAlPiUKICBncm91cF9ieShjb3VudHJ5X3R4dCkgJT4lCiAgc3VtbWFyaXNlKGF0dGFja3MgPSBuKCksIGRlYXRocyA9IHN1bShuYS5vbWl0KG5raWxsKSkpICU+JQogIGFycmFuZ2UoZGVzYyhkZWF0aHMpKQoKeWVhcl90ZXJyb3Jpc21fZGVhdGhzCmBgYAoKYGBge3J9CiMgdGVycm9yaXNtX3dvcmRzIDwtCiMgICB0ZXJyb3Jpc20gJT4lCiMgICBzZWxlY3QoYXR0YWNrdHlwZTFfdHh0LCB3ZWFwdHlwZTFfdHh0LCB3ZWFwc3VidHlwZTFfdHh0LCB3ZWFwZGV0YWlsKQojIAojIHdyaXRlLnRhYmxlKHRlcnJvcmlzbV93b3JkcywgZmlsZSA9ICJ0ZXJyb3Jpc21fd29yZHMudHh0IiwgcXVvdGUgPSBGQUxTRSwKIyAgICAgICAgICAgICBzZXAgPSAiICIsIHJvdy5uYW1lcyA9IEZBTFNFLCBjb2wubmFtZXMgPSBGQUxTRSkKIyAKIyB0ZXJyb3Jpc21fdHh0IDwtIAojICAgcmVhZHRleHQoZmlsZSA9ICJ0ZXJyb3Jpc21fd29yZHMudHh0IikgJT4lCiMgICBhcy50aWJibGUoKQojIAojIGhlYWQodGVycm9yaXNtX3R4dCkKCmBgYAoKYGBge3J9CndvcmRjbG91ZCgidGVycm9yaXNtX3dvcmRzLnR4dCIsIG1heC53b3JkcyA9IDEwKQoKYGBgCgoKYGBge3J9CnRlcnJvcmlzbSAlPiUKICBzYW1wbGUoNTAwMCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gbG9uZ2l0dWRlLCB5ID0gbGF0aXR1ZGUpKSArCiAgZ2VvbV9wb2ludCgpCmBgYAoKYGBge3J9CnRlcnJvcmlzbSAlPiUKICBmaWx0ZXIoY291bnRyeV90eHQgPT0gIlVuaXRlZCBTdGF0ZXMiKSAlPiUKICBmaWx0ZXIobG9uZ2l0dWRlIDwgMCkgJT4lCiAgZmlsdGVyKG5raWxsdXMgPiAwKSAlPiUKICBnZ3Bsb3QoYWVzKHggPSBsb25naXR1ZGUsIHkgPSBsYXRpdHVkZSkpICsKICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IG5raWxsKSkKYGBgCgpgYGB7cn0KIyBVc2luZyBhcHBseSB0byBjaGFuZ2UgdmFsdWVzIGluIGRhdGEgZnJhbWUgdG8gbnVtYmVycwplY29uTnVtZXJpYyA8LSBhcHBseShYID0gZWNvbkRhdGFbLDU6MzBdLCBGVU4gPSBhcy5udW1lcmljLCBNQVJHSU4gPSAyKQoKZWNvbkRhdGFOZXcgPC0KICBlY29uRGF0YSAlPiUKICBzZWxlY3QoYygxOjQpKQogIAplY29uRGF0YTIgPC0KICBhcy5kYXRhLmZyYW1lKGVjb25OdW1lcmljKQoKZWNvbkRhdGFOZXcgPC0KICBlY29uRGF0YU5ldyAlPiUKICBjYmluZChlY29uRGF0YTIpCgplY29uRGF0YU5ldwpgYGAKCmBgYHtyfQojIFVzaW5nIGdhdGhlciBmdW5jdGlvbiB0byBtYWtlIGRhdGEgZnJhbWUgdGlkeQplY29uRGF0YVRpZHkgPC0KICBlY29uRGF0YU5ldyAlPiUKICBnYXRoZXIoa2V5ID0gIlllYXIiLCB2YWx1ZSA9ICJWYWx1ZSIsIDU6MzApCgplY29uRGF0YVRpZHkKCmBgYAoKYGBge3J9CiMgQ3JlYXRpbmcgYXZlcmFnZSBvZiB2YWx1ZXMgb3ZlciB0aGUgMjYgeWVhcnMgZm91bmQgaW4gdGhlIGRhdGEgZnJhbWUKZWNvbkF2ZXJhZ2VzIDwtCiAgZWNvbkRhdGFUaWR5ICU+JQogIGdyb3VwX2J5KENvdW50cnksIFN1YmplY3QuRGVzY3JpcHRvciwgVW5pdHMpICU+JQogIHN1bW1hcmlzZShhdmVyYWdlID0gbWVhbihuYS5vbWl0KFZhbHVlKSkpCgplY29uQXZlcmFnZXMKCmBgYAoKYGBge3J9CiMgVXNlci1kZWZpbmVkIGZ1bmN0aW9uIHRvIGNyZWF0ZSBkYXRhIGZyYW1lIGJhc2VkIG9mZiBzdWJqZWN0IGluZGljYXRvcgpjcmVhdGVfZGVhdGhzX3RhYmxlIDwtIGZ1bmN0aW9uKHgsIHkpewogIGVjb25BdmVyYWdlcyAlPiUKICAgIGZpbHRlcihTdWJqZWN0LkRlc2NyaXB0b3IgPT0geCwgVW5pdHMgPT0geSkgJT4lCiAgICByZW5hbWUoImNvdW50cnlfdHh0IiA9ICJDb3VudHJ5IikgJT4lCiAgICBsZWZ0X2pvaW4odGVycm9yaXNtLCBieSA9ICJjb3VudHJ5X3R4dCIpICU+JQogICAgcmVuYW1lKCJDb3VudHJ5IiA9ICJjb3VudHJ5X3R4dCIpCn0KCmBgYAoKYGBge3J9CiMgRGF0YSBmcmFtZSB3aXRoIHBvcHVsYXRpb24gYW5kIGF0dGFja3MvZGVhdGhzClBvcERlYXRocyA8LSBjcmVhdGVfZGVhdGhzX3RhYmxlKCJQb3B1bGF0aW9uIiwgIlBlcnNvbnMiKQpQb3BEZWF0aHMKYGBgCgpgYGB7cn0KIyBEYXRhIGZyYW1lIHdpdGggR0RQCkdEUERlYXRocyA8LSBjcmVhdGVfZGVhdGhzX3RhYmxlKCJHcm9zcyBkb21lc3RpYyBwcm9kdWN0IHBlciBjYXBpdGEsIGNvbnN0YW50IHByaWNlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQdXJjaGFzaW5nIHBvd2VyIHBhcml0eTsgMjAxMSBpbnRlcm5hdGlvbmFsIGRvbGxhciIpCkdEUERlYXRocwoKYGBgCgpgYGB7cn0KIyBEYXRhIEZyYW1lIHdpdGggaW5mbGF0aW9uCkluZmxhdGlvbkRlYXRocyA8LSBjcmVhdGVfZGVhdGhzX3RhYmxlKCJJbmZsYXRpb24sIGF2ZXJhZ2UgY29uc3VtZXIgcHJpY2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGV4IikKSW5mbGF0aW9uRGVhdGhzCmBgYAoKYGBge3J9CiMgRGF0YSBmcmFtZSBpbnZvbHZpbmcgdG90YWwgY291bnRyeSBzcGVuZGluZwpTcGVuZGluZ0RlYXRocyA8LSBjcmVhdGVfZGVhdGhzX3RhYmxlKCJHZW5lcmFsIGdvdmVybm1lbnQgdG90YWwgZXhwZW5kaXR1cmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQZXJjZW50IG9mIEdEUCIpClNwZW5kaW5nRGVhdGhzCmBgYAoKYGBge3J9CiMgRGF0YSBmcmFtZSBpbnZvbHZpbmcgcGVyY2VudCBjaGFuZ2UgaW4gaW1wb3J0ZWQgZ29vZHMgYW5kIHNlcnZpY2VzCkltcG9ydERlYXRocyA8LSBjcmVhdGVfZGVhdGhzX3RhYmxlKCJWb2x1bWUgb2YgaW1wb3J0cyBvZiBnb29kcyBhbmQgc2VydmljZXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUGVyY2VudCBjaGFuZ2UiKQpJbXBvcnREZWF0aHMKCmBgYAoKYGBge3J9ClllYXJFY29uRGF0YSA8LQogIGVjb25EYXRhVGlkeSAlPiUKICBmaWx0ZXIoU3ViamVjdC5EZXNjcmlwdG9yID09ICJQb3B1bGF0aW9uIikgCgp5ZWFyX3RlcnJvcmlzbV9kZWF0aHMgPC0KICB0ZXJyb3Jpc20gJT4lCiAgZ3JvdXBfYnkoaXllYXIpICU+JQogIGZpbHRlcihpeWVhciA+PSAxOTk5KSAlPiUKICBzdW1tYXJpc2UoYXR0YWNrcyA9IG4oKSwgZGVhdGhzID0gc3VtKG5hLm9taXQobmtpbGwpKSkgJT4lCiAgcmVuYW1lKCJZZWFyIiA9ICJpeWVhciIpICU+JQogIGFycmFuZ2UoWWVhcikKClllYXJFY29uRGF0YUNsZWFuIDwtCiAgWWVhckVjb25EYXRhICU+JQogIG11dGF0ZShZZWFyID0gYXMubnVtZXJpYyhnc3ViKCJYIiwgIiIsIFllYXIpKSkgJT4lCiAgZ3JvdXBfYnkoWWVhcikgJT4lCiAgZmlsdGVyKFllYXIgPD0gMjAxNykgJT4lCiAgc3VtbWFyaXNlKHdvcmxkUG9wID0gc3VtKG5hLm9taXQoVmFsdWUpKSkKCmdncGxvdChkYXRhID0geWVhcl90ZXJyb3Jpc21fZGVhdGhzLCBhZXMoeCA9IFllYXIsIHkgPSBhdHRhY2tzKSkgKwogIGdlb21fcG9pbnQoY29sb3IgPSAicmVkIiwgc2hhcGUgPSAxNSkgKyBnZW9tX2xpbmUoY29sb3IgPSAicmVkIikgKwogIGdlb21fcG9pbnQoYWVzKHggPSBZZWFyLCB5ID0gd29ybGRQb3ApLCBjb2xvciA9ICJibHVlIiwgZGF0YSA9IFllYXJFY29uRGF0YUNsZWFuKSArCiAgZ2VvbV9saW5lKGFlcyh4ID0gWWVhciwgeSA9IHdvcmxkUG9wKSwgY29sb3IgPSAiYmx1ZSIsIGRhdGEgPSBZZWFyRWNvbkRhdGFDbGVhbikKYGBgCgpgYGB7cn0KeXRkMiA8LSB5ZWFyX3RlcnJvcmlzbV9kZWF0aHNbLWMoMSldCgp5dGQyIDwtCiAgeXRkMiAlPiUKICBzZWxlY3QoYXR0YWNrcywgZGVhdGhzKSAlPiUKICBhcnJhbmdlKGRlc2MoYXR0YWNrcykpICU+JQogIGhlYWQoMjUpCgp5dGRfdG9wXzI1IDwtCiAgeWVhcl90ZXJyb3Jpc21fZGVhdGhzICU+JQogIGFycmFuZ2UoZGVzYyhhdHRhY2tzKSkgJT4lCiAgaGVhZCgyNSkKCnl0ZF9zdGQgPC0KICBzY2FsZSh5dGQyKSAlPiUKICBhcy5kYXRhLmZyYW1lKCkKCnl0ZF9kaXN0IDwtIGRpc3QoeXRkX3N0ZCkKCnl0ZF9kZW5kbyA8LQogIHl0ZF9kaXN0ICU+JQogIGhjbHVzdChtZXRob2QgPSAiY29tcGxldGUiKQoKbGFiZWxzIDwtIHl0ZF90b3BfMjUkY291bnRyeV90eHQKCnl0ZF9kZW5kbyAlPiUKICBwbG90KGNleCA9IDAuOSwgbGFiZWxzID0gbGFiZWxzLCBsd2QgPSAyLAogICAgICAgbWFpbiA9ICJOQ0k2MCBEZW5kb2dyYW0gd2l0aCBDb21wbGV0ZSBMaW5rYWdlIikKYGBgCgo=